import Vue from "vue";
import App from "./App.vue";
import router from "./router";

Vue.config.productionTip = false;

// 引入axios
import axios from "axios";
import VueAxios from "vue-axios";
Vue.use(VueAxios, axios);

// 引入flexible.js
import "lib-flexible/flexible";

// 字体图标
import "../src/assets/icon/iconfont.css";

// 引入vant2组件
import {
    Tabbar,
    TabbarItem,
    Lazyload,
    Icon,
    Checkbox,
    List,
    button,
    Skeleton,
    CheckboxGroup,
    RadioGroup,
    Radio,
    Search,
    Tab,
    Tabs,
    Swipe,
    SwipeItem,
    Popup,
    Slider,
    Switch,
    Form,
    Field,
    Toast,
    Rate,
    Divider,
    Cell,
    Sidebar,
    SidebarItem,
    DropdownItem,
    Uploader,
    DropdownMenu,
    Dialog,
    Empty,
    ShareSheet,
} from "vant";

Vue.use(Tabbar)
    .use(TabbarItem)
    .use(Icon)
    .use(RadioGroup)
    .use(Radio)
    .use(Search)
    .use(button)
    .use(Tab)
    .use(Tabs)
    .use(Swipe)
    .use(SwipeItem)
    .use(Toast)
    .use(Popup)
    .use(Slider)
    .use(Switch)
    .use(Form)
    .use(Checkbox)
    .use(CheckboxGroup)
    .use(Skeleton)
    .use(Lazyload)
    .use(List)
    .use(Rate)
    .use(Divider)
    .use(Cell)
    .use(Uploader)
    .use(Sidebar)
    .use(SidebarItem)
    .use(DropdownMenu)
    .use(DropdownItem)
    .use(Dialog)
    .use(Empty)
    .use(ShareSheet)
    .use(Field);

axios.defaults.baseURL = "https://apis.netstart.cn/yunyuedu/";
// axios.defaults.baseURL = '/api';

// 添加请求拦截器
axios.interceptors.request.use(
    function (config) {
        // 在发送请求之前做些什么
        // ('在发送请求之前做些什么');

        // ('config ==> ', config);

        //启动加载提示
        Toast.loading({
            //消息
            message: "加载中...",
            //防止穿透点击
            forbidClick: true,
            //展示时长(ms)，值为 0 时，toast 不会消失
            duration: 0,
        });
        return config;
    },
    function (error) {
        // 对请求错误做些什么
        return Promise.reject(error);
    }
);

// 添加响应拦截器
axios.interceptors.response.use(
    function (response) {
        // 2xx 范围内的状态码都会触发该函数。
        // 对响应数据做点什么
        // ('对响应数据做点什么');

        //关闭加载提示
        Toast.clear();

        return response;
    },
    function (error) {
        // 超出 2xx 范围的状态码都会触发该函数。
        // 对响应错误做点什么
        // ('出错 对响应数据做点什么');
        //关闭加载提示
        Toast.clear();
        return Promise.reject(error);
    }
);
export default axios;

// app.all('*',function(req,res,next){
//   res.header('Access-Conyrol-Allow-Origin','*');
//   res.header('Access-Conyrol-Allow-Headers','X-Requested-With');
//   res.header('Access-Conyrol-Allow-Methods','PUT,POST,GET,DELETE,OPTIONS');
//   res.header('X-Powered-By','3.2.1');
//   res.header('Content-Type','application/json;charset=utf-8');
//   next();
// })

new Vue({
    router,
    render: (h) => h(App),
}).$mount("#app");
